Skip to main content

System Design interview cheat sheet

understand the problem and establish design scope (5 min)

  • clarify requirements

  • why are we building this

  • who are the users

  • what features do we need to build

  • get interviewer buy in on feature list

  • non-functional

  • focus on scale and performance

  • do rough calculations

  • get general sense of scale

  • should end with short list of features and a few non-functional requirements to satisfy

propose high level design and get buy in (20 min)

  • top down, start with APIs

  • define input parameters and output responses carefully

  • verify they satisfy functional requirements

  • design a diagram

  • start with load balancer or API gateway

  • behind that is the services that satisfy the requirements

  • behind that is persistence so introduce data storage

  • do this for each requirement

  • keep a list of conversation topics for later (scaling, concurrency, failure scenarios)

  • create data model and schema

  • data access patterns and read/write ratio

  • step back and review the design

design deep dive (15 min)

  • determine with interview what to discuss in depth

  • identify problematic areas and discuss trade offs

  • ask interviewer if they have any concerns about current design

  • for each area

  • articulate the problems

  • come up with 2 solutions

  • discuss tradeoffs of the solutions

  • pick a solution and discuss

wrap up (5 min)

  • summarize the design
  • note parts that are unique to this particular situation